package cn.springboot.osbulkparts.service;

import java.util.List;
import java.util.Locale;
import java.util.Map;

import cn.springboot.osbulkparts.entity.TDeliverInfoSplitEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication;

import cn.springboot.osbulkparts.common.CommonResultInfo;
import cn.springboot.osbulkparts.common.entity.CommonEntity;
import cn.springboot.osbulkparts.entity.TDeliverInfoEntity;
import cn.springboot.osbulkparts.entity.TDictDataEntity;
import org.springframework.web.bind.annotation.RequestHeader;

public interface GoodsListService {

	CommonResultInfo<Map<String, List<TDictDataEntity>>> initViews(String lang, Locale locale);

	CommonResultInfo<?> getGoodsList(TDeliverInfoEntity tDeliverInfoSplitEntity, int pageNumber, int pageSize, Authentication auth,Locale locale);

	CommonResultInfo<?> getGoodsListSplit(TDeliverInfoSplitEntity stockInfoEntity, int pageNumber, int pageSize, Authentication auth, Locale locale);

	CommonResultInfo<?> sendGoods(CommonEntity commonEntity, Authentication auth,Locale locale);

	CommonResultInfo<?> deleteGoods(CommonEntity commonEntity, Authentication auth,Locale locale);

	CommonResultInfo<?> receivingGoods(CommonEntity commonEntity, Authentication auth,Locale locale);

	ResponseEntity<byte[]> downExcel(TDeliverInfoEntity stockInfoEntity);

	CommonResultInfo<?> updateGoods(TDeliverInfoEntity stockInfoEntity, Authentication auth,Locale locale);
	CommonResultInfo<?> addGood(TDeliverInfoEntity stockInfoEntity, Authentication auth,Locale locale);
	CommonResultInfo<?> addGoods(TDeliverInfoEntity stockInfoEntity, Authentication auth,Locale locale);
	CommonResultInfo<?> addGoodsSplit(List<TDeliverInfoSplitEntity> objectArray, Authentication auth,Locale locale);
	//根据物料号获得 物料的供应商信息和物料的数量
    CommonResultInfo<Map<String, String>> selectMaterialInfo(String materialCode, Authentication auth,Locale locale);

    //根据id获得详细信息
    CommonResultInfo<?> getDeliverInfo(String id, Authentication auth,String lang,Locale locale);
    //根据合同号获得 提单号、装船日期、船期、应付款日期、实际付款日期
    CommonResultInfo<?> getInitInfoByContractNo(String contractNo, Authentication auth,String lang,Locale locale);

	ResponseEntity<byte[]> downloadExcel(TDeliverInfoEntity tDeliverInfoEntity,Locale locale);

	CommonResultInfo<?> splitGoods(String oldId,List<TDeliverInfoEntity> tDeliverInfoEntity, Authentication auth, Locale locale);
}
